iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

轉職AI軟體工程師的自我學習分享筆記系列 第 25

Python 速算器: 匯率轉換 Currency Converter

  • 分享至 

  • xImage
  •  

前情提要:

經過一連串~ brain storming, debug, paper studying, writing articles, positive of covid... hahaha jk lmao /images/emoticon/emoticon37.gif/images/emoticon/emoticon39.gif

However, I realised that my health is the piority! As a life where you have the energy to focus on everything else you want and dream of.
So, let's have a break for coding some simple python games.

Those games are my first side project, which also my self-study of Python before I start the AI and Big Data program. I learned it from the "小象學堂" which is a wechat account (kinda like wechat python learning robot ?!) that I have given from my brother. (p.s. My siblings were engineer before I be an AI RD/PM... but I'm the only one, who still alive in this field/images/emoticon/emoticon02.gif ... well life is hard... it's another story~ haha LOL, let come back to the article /images/emoticon/emoticon33.gif)

https://ithelp.ithome.com.tw/upload/images/20221002/20151681fAH8tMBDfc.jpg

小專案介紹:

此篇-匯率轉換會讓使用者在執行程式後, 自動跑出可以輸入到terminal的input 你可以選擇想要轉換的幣, 此篇練習使用的是美元和台幣, 你可以輸入"USD" (美元) 和 "TWD" (新台幣) 在你想要換的數值後面。
Etc. 100 USD , 500 TWD (若數值和幣名之間沒有輸入空白見也是可以進行匯率轉換的計算的)。

https://ithelp.ithome.com.tw/upload/images/20221002/20151681uJ5op3Isew.jpg

實作完整程式碼(如下):

1. 基本單一貨幣匯率轉換:

需要輸入新台幣想要轉美元為多少錢?(數字) 不需要輸入幣值, 當然如果你想要轉換別種貨幣, 只需修改幣值匯率的參數即可(USD_VS_TWD = 31.82), 當然幣值的變數名稱和輸出名稱, 也可以改成你想轉換的貨幣名稱。

#匯率
USD_VS_TWD = 31.82

#人民幣的輸入
twd_str_value = input('請輸入新台幣(TWD)金額: ')

#將字符串轉為數字
twd_value = eval(twd_str_value)

#匯率計算
usd_value = twd_value / USD_VS_TWD

#輸出結果
print('美元(USD)金額是: ', usd_value)

1. 結果如下圖:

1. RUN 上面的程式, 會出現 "請輸入新台幣(TWD)金額:" 在terminal 中
2. 輸入想轉換的新台幣轉美元的數值 >>> 1000
3. 程式成功輸出轉換成美元的金額為 31.426775612822123

https://ithelp.ithome.com.tw/upload/images/20221002/20151681bN4DTpCIxQ.png

2. 進階功能-A:

    1. 根據輸入判斷是人民幣或是美元, 進行相對應的轉換計算
    1. 程序可以一直運行, 直到用戶選擇退出
#匯率
USD_VS_TWD = 31.82

#帶單位的貨幣輸入
currency_str_value = input('請輸入帶單位的貨幣金額(退出程序請按Q): ')
i = 0

while currency_str_value != 'Q':
    i = i + 1
    #print('循環次數', i)
    #獲取貨幣單位
    unit = currency_str_value[-3:]
    print(unit)

    if unit == 'TWD':
        #輸入的是新台幣
        twd_str_value = currency_str_value[:-3]
        # 將字符串轉換為數字
        twd_value = eval(twd_str_value)
        # 匯率計算
        usd_value = twd_value / USD_VS_TWD

        # 輸出結果
        print('美元(USD)金額是: ', usd_value)

    elif unit == 'USD':
        # 輸入的是美元
        usd_str_value = currency_str_value[:-3]
        #將字符串轉換為數字
        usd_value = eval(usd_str_value)
        #匯率計算
        twd_value = usd_value * USD_VS_TWD

        # 輸出結果
        print('新台幣(TWD)金額是: ', twd_value)

    else:
            #其他情況
            print('目前版本尚不支持該種貨幣')

    print('**********************************************************')
    #帶單位的貨幣輸入
    currency_str_value = input('請輸入帶單位的貨幣金額(退出程序請按Q): ')

print ('程式已退出!')

結果如下:

https://ithelp.ithome.com.tw/upload/images/20221002/20151681stpkZnICZg.png

2. 進階功能-B:

    1. 將匯率悅換功能封裝到函數中
    1. (1) 使程序結構化 (2)簡單函數的定義Lambda
def main():
    """
    主函數
    """
    # 匯率
    USD_VS_TWD = 31.82
    # 帶單位的貨幣輸入
    currency_str_value = input('請輸入帶單位的貨幣金額: ')
    unit = currency_str_value[-3:]

    if unit == 'TWD':
        exchange_rate = 1 / USD_VS_TWD
    elif unit == 'USD':
        exchange_rate = USD_VS_TWD
    else:
        exchange_rate = -1

    if exchange_rate != -1:
        in_money = eval(currency_str_value[:-3])
        #使用lambda定義函數
        convert_currency2 = lambda x: x * exchange_rate
        # # 調用函數
        # out_money = convert_currency(in_money, exchange_rate)
        # 調用Lambda函數
        out_money = convert_currency2(in_money)
        print('轉換後的金額: ', out_money)

    else:
        print('不支持該種貨幣!')

if __name__ == '__main__':
    main()

2. 結果如下圖:

https://ithelp.ithome.com.tw/upload/images/20221002/201516814QFRuDfJuA.png
https://ithelp.ithome.com.tw/upload/images/20221002/20151681Ih48Z4Azq8.png

/images/emoticon/emoticon42.gif


上一篇
Python 速算器: 輸入日期, 判斷是這一年的第幾天?
下一篇
AZURE DP203 課程介紹與上課心得: Day 1
系列文
轉職AI軟體工程師的自我學習分享筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言